home *** CD-ROM | disk | FTP | other *** search
/ Aminet 25 / Aminet 25 (1998)(GTI - Schatztruhe)[!][Jun 1998].iso / Aminet / mus / edit / OctaScripts.lha / scripts / Project_Info.omed < prev   
Text File  |  1998-04-15  |  6KB  |  202 lines

  1. /*
  2.     "Project Info" - Displays some info about instruments etc.
  3.     $VER: Project_Info.omed v1.0 (97-12-29)
  4.  
  5.     ARexx script for use with OctaMED Soundstudio v1.03c (ARexx version 3)
  6.     or higher. Might work with OctaMED v6 aswell (not tested).
  7.  
  8.     Author: Johan Persson (planet4@swipnet.se)
  9. */
  10.  
  11. nl= '0a'x
  12.  
  13. ADDRESS octamed_rexx
  14. OPTIONS RESULTS
  15.  
  16. IF ~show(l,"rexxreqtools.library") THEN DO
  17.     IF ~addlib("rexxreqtools.library", 0, -30) THEN DO
  18.         'wi_request "Please install RexxReqTools.library." "OK"'
  19.         EXIT
  20.     END
  21. END
  22.  
  23. ARG cli
  24.  
  25. type= cli
  26.  
  27. unusedblocks= 0
  28. sample= 0
  29. sample16= 0
  30. midi= 0
  31. midia= 0
  32. midib= 0
  33. midic= 0
  34. midid= 0
  35. midie= 0
  36. midif= 0
  37. midig= 0
  38. midih= 0
  39. midii= 0
  40. midij= 0
  41. midik= 0
  42. midil= 0
  43. midim= 0
  44. midin= 0
  45. midio= 0
  46. midip= 0
  47. blocksdeleted= 0
  48.  
  49. /* --- Accidentally removes the song modified indicator -----
  50. sg_getfilesize VAR multimod    /* MMD2 multimod is default */
  51. ---------------------------------------------------------- */
  52.  
  53. sg_gettempo VAR tempo_main
  54. ed_getnumplayseq VAR songlen
  55. time= songlen*8
  56. time_min= time%tempo_main
  57. time_sec= time/tempo_main-time_min
  58. time_sec= time_sec*60
  59. time_sec= trunc(time_sec, 0)
  60. IF time_sec < 10 THEN time_sec= '0'time_sec''
  61.  
  62. wi_showstring 'Looking for unused blocks...'
  63.  
  64. ed_getnumblocks VAR blocks
  65. DO loop = 0 TO blocks-1
  66.     ed_isblockinseq block loop
  67.     IF RESULT = 0 THEN unusedblocks= unusedblocks+1
  68. END
  69.  
  70. wi_showstring 'Gathering instrument information...'
  71.  
  72. in_getnumber VAR currinst
  73. DO instno = 1 TO 63
  74.     in_select instno
  75.     in_isslotused
  76.     IF RESULT = 1 THEN DO
  77.         in_gettype
  78.         IF RESULT = 'SAMPLE' THEN sample= sample+1
  79.         IF RESULT = 'SAMPLE16' THEN sample16= sample16+1
  80.     END
  81.     in_getmidichannel
  82.     IF RESULT > 0 THEN DO
  83.         midi= midi+1
  84.         IF RESULT = 1 THEN midia= midia+1
  85.         IF RESULT = 2 THEN midib= midib+1
  86.         IF RESULT = 3 THEN midic= midic+1
  87.         IF RESULT = 4 THEN midid= midid+1
  88.         IF RESULT = 5 THEN midie= midie+1
  89.         IF RESULT = 6 THEN midif= midif+1
  90.         IF RESULT = 7 THEN midig= midig+1
  91.         IF RESULT = 8 THEN midih= midih+1
  92.         IF RESULT = 9 THEN midii= midii+1
  93.         IF RESULT = 10 THEN midij= midij+1
  94.         IF RESULT = 11 THEN midik= midik+1
  95.         IF RESULT = 12 THEN midil= midil+1
  96.         IF RESULT = 13 THEN midim= midim+1
  97.         IF RESULT = 14 THEN midin= midin+1
  98.         IF RESULT = 15 THEN midio= midio+1
  99.         IF RESULT = 16 THEN midip= midip+1
  100.     END
  101. END
  102. in_select currinst
  103.  
  104. IF unusedblocks = 0 THEN unusedblocks= '-'
  105.  
  106. IF midi = 0 THEN midi= '-'
  107. IF sample = 0 THEN sample= '-'
  108. IF sample16 = 0 THEN sample16= '-'
  109.  
  110. IF midia = 0 THEN midia= '-'
  111. IF midib = 0 THEN midib= '-'
  112. IF midic = 0 THEN midic= '-'
  113. IF midid = 0 THEN midid= '-'
  114. IF midie = 0 THEN midie= '-'
  115. IF midif = 0 THEN midif= '-'
  116. IF midig = 0 THEN midig= '-'
  117. IF midih = 0 THEN midih= '-'
  118. IF midii = 0 THEN midii= '-'
  119. IF midij = 0 THEN midij= '-'
  120. IF midik = 0 THEN midik= '-'
  121. IF midil = 0 THEN midil= '-'
  122. IF midim = 0 THEN midim= '-'
  123. IF midin = 0 THEN midin= '-'
  124. IF midio = 0 THEN midio= '-'
  125. IF midip = 0 THEN midip= '-'
  126.  
  127. sg_ismodified
  128. IF RESULT = 0 THEN modified= '  Saved'
  129. ELSE modified= '* Unsaved'
  130.  
  131. wi_showstring
  132.  
  133. choise = rtezrequest('Song status:  'modified'' || NL ||,
  134.                      'Tempo:          'tempo_main' BPM' || NL ||,
  135.                      'Calc. time:     'time_min':'time_sec'' || NL ||,
  136.                      'Unused blocks:  'unusedblocks'' || NL ||,
  137.                      '' || NL ||,
  138.                      '----- Instruments used -----' || NL ||,
  139.                      '          8-bit: 'sample'' || NL ||,
  140.                      '         16-bit: 'sample16'' || NL ||,
  141.                      '           MIDI: 'midi'' || NL ||,
  142.                      '' || NL||,
  143.                      '---- MIDI channels used ----' || NL ||,
  144.                      '     1: 'midia'          9: 'midii' ' || NL ||,
  145.                      '     2: 'midib'         10: 'midij' ' || NL ||,
  146.                      '     3: 'midic'         11: 'midik' ' || NL ||,
  147.                      '     4: 'midid'         12: 'midil' ' || NL ||,
  148.                      '     5: 'midie'         13: 'midim' ' || NL ||,
  149.                      '     6: 'midif'         14: 'midin' ' || NL ||,
  150.                      '     7: 'midig'         15: 'midio' ' || NL ||,
  151.                      '     8: 'midih'         16: 'midip' ',,
  152.                      'OK|Delete _unused blocks|OK',,
  153.                      'Project info',,
  154.                      'rt_reqpos=reqpos_centerscr rt_pubscrname=OCTAMED')
  155.  
  156. IF (choise = 1) | (choise = 0) THEN DO
  157.     EXIT
  158. END
  159.  
  160. wi_showstring 'Scanning for unused blocks...'
  161. ed_getcurrblock VAR currblock
  162.  
  163. IF (choise = 2) THEN DO
  164.     DO loop = 0 TO blocks-1
  165.         ed_goto block loop
  166.         ed_isblockinseq
  167.         IF RESULT = 0 THEN DO
  168.             tabort = rtezrequest('Delete block #'loop' ?',,
  169.                      'Yes|Delete _All|_Cancel|No',,
  170.                      'Unused block found',,
  171.                      'rt_reqpos=reqpos_centerscr rt_pubscrname=OCTAMED')
  172.             IF tabort = 3 THEN DO
  173.                 wi_showstring
  174.                 EXIT
  175.             END
  176.             IF tabort = 2 THEN DO
  177.                 wi_showstring 'Deleting all unused blocks...'
  178.                 DO loop = 0 TO blocks-1
  179.                     ed_goto block loop
  180.                     ed_isblockinseq
  181.                     IF RESULT = 0 THEN DO
  182.                         blocksdeleted= blocksdeleted+1
  183.                         ed_deleteblock
  184.                     END
  185.                 END
  186.                 wi_showstring ''blocksdeleted' unused block(s) deleted.'
  187.                 ed_goto block currblock
  188.                 EXIT
  189.             END
  190.             IF tabort = 1 THEN DO
  191.                 blocksdeleted= blocksdeleted+1
  192.                 ed_deleteblock
  193.                 wi_showstring 'Scanning for unused blocks...'
  194.             END
  195.         END
  196.     END
  197. END
  198.  
  199. wi_showstring ''blocksdeleted' unused block(s) deleted.'
  200. ed_goto block currblock
  201. EXIT
  202.